﻿using System;
using QLTB.BusinessObjects;
using QLTB.Common;
using QLTB.DataAccess;

namespace QLTB.BusinessLayer
{
    /// <summary>
    /// Project: NNS System 
    /// Generated Class for Table : TBL_quyen.
    /// Date: 06/03/2010
    /// Author: Trần Hoàng Tâm
    /// </summary>
    /// 
    public enum EnumPermision
    {
        Taomoi,
        Thaydoi,
        Xem
    }

    public class TBL_quyenBL : Object
    {
        private static TBL_quyen nv;
        private static TBL_quyenDA da;
        private static bool _IgnoreError;

        public static bool IgnoreError
        {
            get { return _IgnoreError; }
            set { _IgnoreError = value; }
        }

        public static TBL_quyen Nhanvien
        {
            get { return nv; }
        }

        public static TBL_quyenDA Adapter
        {
            get
            {
                if (da == null)
                {
                    da = new TBL_quyenDA();
                }
                return da;
            }
            set { da = value; }
        }


        public static bool Taomoi
        {
            get
            {
                if (nv != null)
                {
                    if (!nv.taomoi)
                    {
                        if (!IgnoreError)
                            MyBox.ShowWarning("Bạn không có quyền sử dụng chức năng này.", "Quản lý thiết bị");
                        return false;
                    }
                }
                return true;
            }
        }

        public static bool Xem
        {
            get
            {
                if (nv != null)
                {
                    if (!nv.xem)
                    {
                        if (!IgnoreError)
                            MyBox.ShowWarning("Bạn không có quyền sử dụng chức năng này.", "Quản lý thiết bị");
                        return false;
                    }
                }
                return true;
            }
        }

        public static bool Thaydoi
        {
            get
            {
                if (nv != null)
                {
                    if (!nv.thaydoi)
                    {
                        if (!IgnoreError)
                            MyBox.ShowWarning("Bạn không có quyền sử dụng chức năng này.", "Quản lý thiết bị");
                        return false;
                    }
                }
                return true;
            }
        }

        public static bool Get(EnumComponent com)
        {
            return Get(com, (int) MyLogin.Original.idnhom);
        }

        public static bool Get(EnumComponent com, int idnhom)
        {
            if (nv != null)
            {
                if (nv.idnhom == idnhom & nv.menu == com.ToString())
                {
                    return true;
                }
            }

            nv = Adapter.Get(com.ToString(), idnhom);
            if (nv == null)
            {
                if (!IgnoreError)
                    MyBox.ShowWarning("Bạn không có quyền sử dụng chức năng này.", "Quản lý thiết bị");
                return false;
            }
            return true;
        }

        public static bool isTaomoi(EnumComponent com)
        {
            if (!Get(com)) return false;
            return Taomoi;
        }

        public static bool isThaydoi(EnumComponent com)
        {
            if (!Get(com)) return false;
            return Thaydoi;
        }

        public static bool isXem(EnumComponent com)
        {
            if (!Get(com)) return false;
            return Xem;
        }
    }
}